<xsl:stylesheet version="1.0"
                xmlns:s="http://www.w3.org/2005/sparql-results#"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:strip-space elements="*"/>
  <xsl:output method="text"/>


  <xsl:template match="s:sparql">
    USE BabyData;
    <xsl:apply-templates/>
  </xsl:template>


  <xsl:template match="text()"/> <!-- all values output with xsl:value-of -->


  <xsl:template match="s:result">

  <!-- Typical line for this template rule to create 
       (with carriage return added here):
       INSERT INTO company VALUES(
       "Protective Life",1907,NULL,3.06E9,2.71E8,4.16E8);
   -->
    <xsl:text>INSERT INTO company VALUES("</xsl:text>
    <xsl:value-of select="s:binding[@name='coName']/s:literal"/>
    <xsl:text>",</xsl:text>

    <xsl:call-template name="valueOrNULL">
      <xsl:with-param name="value"
                      select="s:binding[@name='formationYear']/s:literal"/>
    </xsl:call-template>
    <xsl:text>,</xsl:text>

    <xsl:call-template name="valueOrNULL">
      <xsl:with-param name="value"
                      select="s:binding[@name='equity']/s:literal"/>
    </xsl:call-template>
    <xsl:text>,</xsl:text>

    <xsl:call-template name="valueOrNULL">
      <xsl:with-param name="value"
                      select="s:binding[@name='revenue']/s:literal"/>
    </xsl:call-template>
    <xsl:text>,</xsl:text>

    <xsl:call-template name="valueOrNULL">
      <xsl:with-param name="value"
                      select="s:binding[@name='netIncome']/s:literal"/>
    </xsl:call-template>
    <xsl:text>,</xsl:text>

    <xsl:call-template name="valueOrNULL">
      <xsl:with-param name="value"
                      select="s:binding[@name='operatingIncome']/s:literal"/>
    </xsl:call-template>

    <xsl:text>);&#10;</xsl:text>
  </xsl:template>
 

  <xsl:template name="valueOrNULL">
    <xsl:param name="value"/>
    <xsl:choose>
      <xsl:when test=" $value != '' ">
        <xsl:value-of select="$value"/>
      </xsl:when>
      <xsl:otherwise>NULL</xsl:otherwise>
    </xsl:choose>
  </xsl:template>


</xsl:stylesheet>

